package com.xxwy.lintcode;

/**
 * @author xxwy John's backyard garden
 * on 2018/10/9 0009
 * 题目：
 * 约翰想在他家后面的空地上建一个后花园，现在有两种砖，一种3 dm的高度，7 dm的高度。
 * 约翰想围成x dm的墙。如果约翰能做到，输出YES，否则输出NO。
 * ------------------------------------------------
 * 例子：
 * 给出 x = 10，返回YES。
 *
 * 解释：
 * x = 3 + 7 : 即需要1匹3 dm高度的砖和1匹7 dm 高度的砖
 */
public class Num749 {

    public  String isBuild(int x) {
        // write you code here
        boolean[] f = new boolean[x+1];
        for (int j = 0; j <= x; j++) {
            if (j < 3) {
                f[j] = false;
                continue;
            }
            if(j == 3 || j == 7){
                f[j] = true;
                continue;
            }
            if(f[j] || f[j-3]|| (j>7 && f[j-7])){
                f[j] = true;
            }
        }
        if(f[x]){
            return "YES";
        }else{
            return "NO";
        }
    }

}
